﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using CDStore3Tiers;

namespace CDStore3Tiers
{
    public class XuLyNCC
    {
		/// <summary>
		/// Khởi tạo StoreCDDate mới
		/// </summary>
        StoreCDDataContext db ;

        /// <summary>
        /// update danh sách nhà cung cấp
        /// </summary>
        /// <param name="dgv">DataGridView</param>

        public XuLyNCC()
        {
            db =new StoreCDDataContext();
            db.Connection.ConnectionString = getConfig.getConnection();
        }
        
        public void UpdateNCC(DataGridView dgv)
        {
            if (dgv.Rows.Count > 0)
            {
                XuLyForm XL = new XuLyForm();
                dgv.EndEdit();
                foreach (DataGridViewRow r in dgv.Rows)
                {
                    int mancc = int.Parse(r.Cells["cnameMaNCC"].Value.ToString().Trim());
                    string tenncc =r.Cells["cnameTenNCC"].Value.ToString().Trim();
                    string diachincc = XL.CToString(r.Cells["cnameDCNCC"].Value);
                    string sdtncc = XL.CToInt(Convert.ToInt32(r.Cells["cnameSDTNCC"].Value));

                    NhaCungCap NCC = db.NhaCungCaps.Single(t => t.MaNCC.Equals(mancc));
                    NCC.TenNCC = tenncc;
                    NCC.DiaChiNCC = diachincc;
                    NCC.SDT =int.Parse(sdtncc);
                    db.SubmitChanges();
                }
            }
        }
		/// <summary>
		/// Lấy danh sách nhà cung cấp
		/// </summary>
		/// <param name="index">Tiêu chí lựa chọn để lấy danh sách nhà cung cấp </param>
		/// <returns>Trả về dnh sách chọn theo tiêu chí</returns>
        public List<NhaCungCap> GetList(int index)
        {
           // db = new StoreCDDataContext();
            //List<NhaCungCap> listNCC1 = new List<NhaCungCap>();
            //List<NhaCungCap> listNCC2 = new List<NhaCungCap>();
            List<NhaCungCap> list = new List<NhaCungCap>();

            foreach (NhaCungCap ncc in db.NhaCungCaps)
            {
                //if (ncc.TenNCC.ToString() == null ||
                //    ncc.DiaChiNCC.ToString() == null ||
                //    Convert.ToInt32(ncc.SDT.ToString()) == null)
                //    listNCC1.Add(ncc);
                //else
                //    listNCC2.Add(ncc);
                list.Add(ncc);
            }
            switch (index)
            {
                case 0:
                    list = db.NhaCungCaps.ToList<NhaCungCap>();
                    break;
                //case 1:
                //    list = listNCC1;
                //    break;
                //case 2:
                //    list = listNCC2;
                //    break;
            }
            return list;
        }
		/// <summary>
		/// Tìm kiếm nhà cung cấp
		/// </summary>
		/// <param name="NCC">Danh sách nhà cung cấp</param>
		/// <param name="val">Giá trị nhập vào</param>
		/// <returns>Trả về danh sách hà cung cấp được tìm kiếm theo giá trị nhập vào</returns>
        public List<NhaCungCap> SearchbyIDNCC(List<NhaCungCap> NCC, string val)
        {
            val = val.ToLower();
            return NCC.Where(c => c.MaNCC.ToString().ToLower().Contains(val) ||
                c.TenNCC.ToString().ToLower().Contains(val) ||
                c.DiaChiNCC.ToString().ToLower().Contains(val) ||
                c.SDT.ToString().ToLower().Contains(val)).ToList<NhaCungCap>();
        }

        public string TenNCC(int mancc)
        {
            var ncc = (from a in db.NhaCungCaps
                         where a.MaNCC == mancc
                         select a.TenNCC).Single();
            return ncc;
        }

        /// <summary>
        /// lấy tồng số trang hiển thị
        /// </summary>
        /// <param name="pagesize">số nhà cung cấp trong 1 trang</param>
        /// <returns>số trang</returns>
        public int TongSoTrang(int pagesize)
        {
            db = new StoreCDDataContext();
            db.Connection.ConnectionString = getConfig.getConnection();
            var a = (from t in db.NhaCungCaps
                     select t).Count();
            if (a % pagesize == 0)
            {
                a = (int)a / pagesize;
            }
            else
            {
                a = ((int)a / pagesize) + 1;
            }
            return a;
        }
        /// <summary>
        /// kiểm tra ncc có hay chưa
        /// </summary>
        /// <param name="tenncc">tên ncc</param>
        /// <param name="diachi">đĩa chỉ ncc</param>
        /// <param name="sdt">sđt ncc</param>
        /// <returns>trả về giá trị 1 nếu trùng, 0 néu không trùng</returns>
        public int KiemTraTrung(string tenncc,  string diachi,int sdt)
        {
            int t = 0;
            foreach (var a in db.NhaCungCaps)
            {
                if (a.TenNCC == tenncc && a.DiaChiNCC == diachi && a.SDT == sdt)
                {
                    t = 1;
                }
            }
            return t;
        }
        /// <summary>
        /// số trang đang hiển thị
        /// </summary>
        /// <param name="pagenumber">tổng số trang</param>
        /// <param name="pagesize">số nhà cung cấp trg trang</param>
        /// <returns>số trang</returns>
        public int SoTrangHienTai(int pagenumber, int pagesize)
        {
            int a = pagenumber;
            if (a % pagesize == 0)
            {
                a = (int)a / pagesize;
            }
            else
            {
                a = ((int)a / pagesize) + 1;
            }
            return a + 1;
        }
    }
}
